using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerItemDrop : ItemDrop
{

    [Header("Player's drop")]
    [SerializeField] private float chanceToLooseItems; // 丢失物品的几率
    [SerializeField] private float chanceToLooseMaterials; // 丢失材料的几率

    // 重写生成掉落物品的方法
    public override void GenerateDrop()
    {
        Inventory inventory = Inventory.instance; // 获取库存实例

        List<InventoryItem> itemsToUnequip = new List<InventoryItem>(); // 要卸下的装备列表
        List<InventoryItem> materulsToLoose = new List<InventoryItem>(); // 要丢失的材料列表

        // 遍历装备列表
        foreach (InventoryItem item in inventory.GetEquipmentList())
        {
            // 根据几率决定是否丢失物品
            if (Random.Range(0, 100) <= chanceToLooseItems)
            {
                DropItem(item.data); // 掉落物品
                itemsToUnequip.Add(item); // 添加到要卸下的装备列表
            }
        }
        // 卸下物品
        for (int i = 0; i < itemsToUnequip.Count; i++)
        {
            inventory.UnequipItem(itemsToUnequip[i].data as ItemData_Equipment);
        }

        // 遍历储藏列表
        foreach (InventoryItem item in inventory.GetStashList())
        {
            // 根据几率决定是否丢失材料
            if (Random.Range(0, 100) <= chanceToLooseMaterials)
            {
                DropItem(item.data); // 掉落材料
                materulsToLoose.Add(item); // 添加到要丢失的材料列表
            }
        }
        // 移除材料
        for (int i = 0; i < materulsToLoose.Count; i++)
        {
            inventory.RemoveItem(materulsToLoose[i].data);
        }

    }
}